# #声明函数
# def add():
#     a   =   3
#     b   =   5
#     s   =   a   +   b
#     print(s)
#     return  a   #只是有返回值，没有显示
#
# #调用
# c   =   add()
# print(c)


# #函数的参数传递
# #第一组
# def add(a,b):#a,b为形参
#     print(a+b)
#
# add(1,3)    #实参为常数
#
# #第二组
# a   =   1
# b   =   3
# add(a,b) #实参为变量
# #
# #第三组
# add(2*3,4*5)    #实参为表达式
#
# c   =   3
# add(8,c*3) #实参和表达式组合

# #位置参数实例：
# def score(a,b,c):
#     print('张三成绩为：',a)
#     print('李四成绩为:',b)
#     print('王五成绩为：',c)
#
#
# score(85,90,81)
#
#
# def reg(name,age,sex="女")
#     print('姓名:{}    年龄{}性别{}'.format(name,age,sex))
#
#
# reg('张三',20)
# reg('李四',21,'男')

# #可变参数
# def fav(*fru):
#     print('我喜欢的水果有：')
#     for i   in  fru:
#         print(i)
#
#
# fav('苹果')  #传递1个参数
# fav('西瓜','鸭梨')    #传递两个参数
# fav('橘子','香蕉','草莓')   #传递三个参数


# # 参数的值大于等于2，如果声明函数的时候有其他形参，通常会把可变长参数放到最后
# def show(a, b,  *c):
#     print(a)
#     print(b)
#     print(*c)
#
#
# show(1, 2,  4,  5,  6,  7,  8,  9,  100)

#矩形面积
# def rect():
#     a   =   int(input('请输入矩形的长:'))
#     b   =   int(input('请输入矩形的宽:'))
#     S   =   a*b
#     C = 2 * (a + b)
#     print('该矩形的面积为：',S)
#     print('该矩形的周长为：',C)
#
#
# rect()


# #函数返回值
# def add(a,b):
#     c   =   a   +   b
#     return  c,  a,  b,  a*b,    a-b
#
# d   =   add(1,2)
# print(d)

# #变量的作用域
# def fun():
#     a   =   20
#     return  a
#
#
# a   =   10
# print(a)
# print(fun())


# #
# def pro(*a):
#     for i   in a:
#         if  i   %2==0:
#             print()
#         if i>10:
#             print()

# #递归函数计算100的阶乘
# def f(n):
#     if  n   <=  1:
#         return  1
#     else:
#         return  n*f(n-1)
#
#
# num =   int(input('请输入一个正整数:'))
# s   =   f(num)
# print(num,'的阶乘是：',s)


# #例题利用递归计算1~100相加之和
# def sum(n):
#     if  n   ==  1:
#         return  1
#     else:
#         return  n+sum(n-1)
#
#
# print('1~100相加的和为',sum(100))


# #计算斐波那契数列f（0）=），f(1)=1,f(n)=f(n-1)+f(n-2)(n>=2)的第n项
# def fibo(n):
#     if  n   <=  2:
#         return  1
#     else:
#         return  fibo(n-1)+fibo(n-2)
#
#
# print('斐波那契数列的第{}项为{}'.format(7,fibo(7)))


# #匿名函数
# ##<函数名>=lambda <表达数列>：<表达式>
# #使用函数实现a+b+c
# sum =lambda a,  b,  c:a+b+c
# print(sum(1,2,3))

# #编写lambda函数，参数为正方形的边长m，输出正方形的面积。
# fun =   lambda  m:  m**2
# print(fun(5))